home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / oscar / oscarformat.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  3KB  |  91 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from util import Point2HTMLSize, Storage as S
  5. DEFAULTS = S(FONT = 'Times New Roman', SIZE = 12, BACK = (255, 255, 255), FORE = (0, 0, 0))
  6.  
  7. def tohex(t, n = 3):
  8.     return ''.join((lambda .0: for c in .0:
  9. '%02x' % c)(t[:n]))
  10.  
  11. pointsize_map = {
  12.     8: 1,
  13.     10: 2,
  14.     12: 3,
  15.     14: 4,
  16.     18: 5,
  17.     24: 6,
  18.     36: 7,
  19.     38: 7 }
  20.  
  21. def aimsize(n):
  22.     n = int(n)
  23.     
  24.     try:
  25.         return pointsize_map[n]
  26.     except KeyError:
  27.         return Point2HTMLSize(n)
  28.  
  29.  
  30.  
  31. def to_aimhtml(s, fmt, body_bgcolor = False, replace_newlines = False):
  32.     (before, after) = ('', '')
  33.     fontface = None
  34.     fontsize = None
  35.     fontfore = None
  36.     fontback = None
  37.     face = fmt.get('face', DEFAULTS.FONT)
  38.     if face != DEFAULTS.FONT:
  39.         fontface = face
  40.     
  41.     size = fmt.get('size', DEFAULTS.SIZE)
  42.     if size != DEFAULTS.SIZE:
  43.         fontsize = size
  44.     
  45.     back = fmt.get('backgroundcolor', DEFAULTS.BACK)
  46.     if back != DEFAULTS.BACK:
  47.         fontback = back
  48.     
  49.     fore = fmt.get('foregroundcolor', DEFAULTS.FORE)
  50.     if fore != DEFAULTS.FORE:
  51.         fontfore = fore
  52.     
  53.     bodyattrs = None
  54.     if fontface and fontsize and fontback or fontfore:
  55.         if body_bgcolor and fontback and fontback != (255, 255, 255):
  56.             bodyattrs = 'BGCOLOR="#%s"' % tohex(fontback)
  57.         
  58.         fontattrs = None(None(None, [
  59.             None,
  60.             ' '.join,
  61.             filter,
  62.             (lambda s: bool(s)) if fontface else '' if fontsize else '' if fontfore else '' if not body_bgcolor and fontback and fontback[:3] != (255, 255, 255) else '']))
  63.         fontattrs = fontattrs.strip()
  64.         if fontattrs:
  65.             before += '<FONT %s>' % fontattrs
  66.             after += '</FONT>'
  67.         
  68.     
  69.     for a in ('bold', 'underline', 'italic'):
  70.         if fmt.get(a, False):
  71.             tag = a[0]
  72.             before += '<%s>' % tag
  73.             after = '</%s>' % tag + after
  74.             continue
  75.     
  76.     if bodyattrs:
  77.         before = '<BODY %s>' % bodyattrs + before
  78.         after += '</BODY>'
  79.     
  80.     if replace_newlines:
  81.         
  82.         last = lambda _s: _s.replace('\n', '<br />')
  83.     else:
  84.         
  85.         last = lambda _s: _s
  86.     return last(''.join([
  87.         before,
  88.         s,
  89.         after]))
  90.  
  91.